<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
    <title>ShellCheck: SC2215 – This flag is used as a command name. Bad line break or missing `[ .. ]`?</title>
    <link rel="stylesheet" href="css/bootstrap.min.css" />
  </head>
  <body style="margin-left: auto; margin-right: auto; max-width: 800px">
    <h1>SC2215 – ShellCheck Wiki</h1>
    <a href="https://github.com/koalaman/shellcheck/wiki/SC2215">See this page on GitHub</a>
    <p style="display: none"><a href="index.html">Sitemap</a></p>
    <hr />
    <h2
id="this-flag-is-used-as-a-command-name-bad-line-break-or-missing---">This
flag is used as a command name. Bad line break or missing
<code>[ .. ]</code>?</h2>
<h3 id="problematic-code">Problematic code:</h3>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="SC2215.html#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="cf">if</span> <span class="ex">-e</span> .bashrc</span>
<span id="cb1-2"><a href="SC2215.html#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="cf">then</span></span>
<span id="cb1-3"><a href="SC2215.html#cb1-3" aria-hidden="true" tabindex="-1"></a>  <span class="bu">echo</span> <span class="st">&quot;.bashrc already exists&quot;</span></span>
<span id="cb1-4"><a href="SC2215.html#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="cf">fi</span></span></code></pre></div>
<p>or</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="SC2215.html#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find</span> . <span class="at">-name</span> <span class="st">&#39;*.mkv&#39;</span></span>
<span id="cb2-2"><a href="SC2215.html#cb2-2" aria-hidden="true" tabindex="-1"></a>       <span class="ex">-exec</span> mplayer {} <span class="dt">\;</span></span></code></pre></div>
<h3 id="correct-code">Correct code:</h3>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="SC2215.html#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="cf">if</span> <span class="bu">[</span> <span class="ot">-e</span> .bashrc <span class="bu">]</span></span>
<span id="cb3-2"><a href="SC2215.html#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="cf">then</span></span>
<span id="cb3-3"><a href="SC2215.html#cb3-3" aria-hidden="true" tabindex="-1"></a>  <span class="bu">echo</span> <span class="st">&quot;.bashrc already exists&quot;</span></span>
<span id="cb3-4"><a href="SC2215.html#cb3-4" aria-hidden="true" tabindex="-1"></a><span class="cf">fi</span></span></code></pre></div>
<p>or</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="SC2215.html#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find</span> . <span class="at">-name</span> <span class="st">&#39;*.mkv&#39;</span> <span class="dt">\</span></span>
<span id="cb4-2"><a href="SC2215.html#cb4-2" aria-hidden="true" tabindex="-1"></a>       <span class="at">-exec</span> mplayer {} <span class="dt">\;</span></span></code></pre></div>
<h3 id="rationale">Rationale:</h3>
<p>You are using a name that starts with a dash as a command name. This
is almost always a bug.</p>
<p>There are two typical ways in which this happens:</p>
<ul>
<li>Missing <code>[ .. ]</code> or <code>[[ .. ]]</code> around a test
expression, like in the first example example.</li>
<li>An invalid line break that splits a command in two, like in the
second example.</li>
</ul>
<h3 id="exceptions">Exceptions:</h3>
<p>If you actually have a command that starts with a dash -- which you
should really reconsider -- you can quote the name (or at least the
leading dash). This makes no difference to the shell, but makes it clear
to ShellCheck and humans that this is not intended as a flag.</p>
    <hr />
    <p style='font-size: 80%'><a href="../index.html">ShellCheck</a> is a static analysis tool for shell scripts. This page is part of its documentation.</p>
  </body>
</html>


